# 作者: 菅世博
# 2025年02月18日10时33分33秒
# 512326042@qq.com


def change_num(num):
    """
    整型是不可变类型，通过传参，函数内修改不会影响外部变量
    :param num:# 传入的参数
    :return:
    """
    print(f'g_num={num}, id(g_num)={id(num)}')
    num = 5
    print(f'change函数内修改后 g_num={num}, id(g_num)={id(num)}')


a = 10
print(f'a={a}, id(a)={id(a)}')
change_num(a)
print(f'函数外 a={a}')
print('-' * 50)
my_list = [1, 2, 3]
print(f'my_list={my_list}')


def change_list(new_list):
    """
    列表是可变类型，通过传参，函数内修改会影响外部变量
    :param new_list:
    :return:
    """
    new_list[0] = 5 #把数据空间中的1改成5
    print(f'my_list函数内={new_list}, id(new_list)={id(new_list)}')


change_list(my_list) #传递的是my_list的地址
print(f'change_list函数内修改后 my_list={my_list}, id(my_list)={id(my_list)}')
